package eteam.aps.model.vo.arrival;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;

/**
 * 采购到货单;
 *
 * @author LiuLei
 */
@ApiModel(value = "ArrivalVouchVo", description = "采购到货单")
public class ArrivalVouchVo {

    /**
     * 到货单单号
     */
    @ApiModelProperty(name = "到货单单号", notes = "到货单单号")
    private String fCCode;

    /**
     * 供应商编号
     */
    @ApiModelProperty(name = "供应商编号", notes = "供应商编号")
    private String fCVenCode;

    /**
     * 供应商名称
     */
    @ApiModelProperty(name = "供应商名称", notes = "供应商名称")
    private String fCVenName;

    /**
     * 审核日期
     */
    @ApiModelProperty(name = "审核日期", notes = "审核日期")
    private Date fCAuditDate;

    /**
     * 单据日期
     */
    @ApiModelProperty(name = "单据日期", notes = "单据日期")
    private Date fDDate;

    /**
     * 部门编号
     */
    @ApiModelProperty(name = "部门编号", notes = "部门编号")
    private String fCDepCode;

    /**
     * 部门名称
     */
    @ApiModelProperty(name = "部门名称", notes = "部门名称")
    private String fCDepName;

    /**
     * 物料编号
     */
    @ApiModelProperty(name = "物料编号", notes = "物料编号")
    private String fclnvCode;

    /**
     * 物料名称
     */
    @ApiModelProperty(name = "物料名称", notes = "物料名称")
    private String fProductName;

    /**
     * 规格
     */
    @ApiModelProperty(name = "规格", notes = "规格")
    private String fclnvStd;

    /**
     * 单位名称
     */
    @ApiModelProperty(name = "单位名称", notes = "单位名称")
    private String fCComUnitName;

    /**
     * 单位编号
     */
    @ApiModelProperty(name = "单位编号", notes = "单位编号")
    private String fCmassunit;

    /**
     * 版本号
     */
    @ApiModelProperty(name = "版本号", notes = "版本号")
    private String fBanbencode;

    /**
     * 物料分类;物料分类
     */
    @ApiModelProperty(name = "物料分类", notes = "物料分类")
    private String fInvType;

    /**
     * 采购方;采购方
     */
    @ApiModelProperty(name = "采购方", notes = "采购方")
    private String fPurName;

    /**
     * 厂商制造批号
     */
    @ApiModelProperty(name = "厂商制造批号", notes = "厂商制造批号")
    private String fManufacturerBatchNo;

    /**
     * 出厂检验报告【-1 否，0 草稿、1 是】
     */
    @ApiModelProperty(name = "出厂检验报告", notes = "出厂检验报告【-1 否，0 草稿、1 是】")
    private int fInsType;

    /**
     * 质检员;质检员
     */
    @ApiModelProperty(name = "质检员", notes = "质检员")
    private String fOperator;

    /**
     * 到货数量
     */
    @ApiModelProperty(name = "到货数量", notes = "到货数量")
    private BigDecimal fIQuantity;

    /**
     * 实收数量
     */
    @ApiModelProperty(name = "实收数量", notes = "实收数量")
    private BigDecimal fFinStockQuantity;

    /**
     * 批号
     */
    @ApiModelProperty(name = "批号", notes = "批号")
    private String fCBatch;

    /**
     * 条码号
     */
    @ApiModelProperty(name = "条码号", notes = "条码号")
    private String fBarCode;

    @TableField("FArrivalType")
    private int fArrivalType;

    @ApiModelProperty(name = "合并条码号【仅限到货单类型是差分单才有】", notes = "合并条码号【仅限到货单类型是差分单才有】")
    private String fMergeBar;

    /**
     * 验收状态
     */
    @ApiModelProperty(name = "验收状态【-1 合格，0 草稿，1 不合格，2 入库 】", notes = "验收状态【-1 合格，0 草稿，1 不合格，2 入库 】")
    private int fQCAceptType;

    /**
     * 储位
     */
    @ApiModelProperty(name = "储位", notes = "储位")
    private String fPlaceCode;

    /**
     * 仓库编号
     */
    @ApiModelProperty(name = "仓库编号", notes = "仓库编号")
    private String fCWhCode;

    /**
     * 仓库名称
     */
    @ApiModelProperty(name = "仓库名称", notes = "仓库名称")
    private String fCWhName;

    public String getfCCode() {
        return fCCode;
    }

    public void setfCCode(String fCCode) {
        this.fCCode = fCCode;
    }

    public String getfCVenCode() {
        return fCVenCode;
    }

    public void setfCVenCode(String fCVenCode) {
        this.fCVenCode = fCVenCode;
    }

    public String getfCVenName() {
        return fCVenName;
    }

    public void setfCVenName(String fCVenName) {
        this.fCVenName = fCVenName;
    }

    public Date getfCAuditDate() {
        return fCAuditDate;
    }

    public void setfCAuditDate(Date fCAuditDate) {
        this.fCAuditDate = fCAuditDate;
    }

    public Date getfDDate() {
        return fDDate;
    }

    public void setfDDate(Date fDDate) {
        this.fDDate = fDDate;
    }

    public String getfCDepCode() {
        return fCDepCode;
    }

    public void setfCDepCode(String fCDepCode) {
        this.fCDepCode = fCDepCode;
    }

    public String getfCDepName() {
        return fCDepName;
    }

    public void setfCDepName(String fCDepName) {
        this.fCDepName = fCDepName;
    }

    public String getFclnvCode() {
        return fclnvCode;
    }

    public void setFclnvCode(String fclnvCode) {
        this.fclnvCode = fclnvCode;
    }

    public String getfProductName() {
        return fProductName;
    }

    public void setfProductName(String fProductName) {
        this.fProductName = fProductName;
    }

    public String getFclnvStd() {
        return fclnvStd;
    }

    public void setFclnvStd(String fclnvStd) {
        this.fclnvStd = fclnvStd;
    }

    public String getfCComUnitName() {
        return fCComUnitName;
    }

    public void setfCComUnitName(String fCComUnitName) {
        this.fCComUnitName = fCComUnitName;
    }

    public String getfCmassunit() {
        return fCmassunit;
    }

    public void setfCmassunit(String fCmassunit) {
        this.fCmassunit = fCmassunit;
    }

    public String getfBanbencode() {
        return fBanbencode;
    }

    public void setfBanbencode(String fBanbencode) {
        this.fBanbencode = fBanbencode;
    }

    public String getfInvType() {
        return fInvType;
    }

    public void setfInvType(String fInvType) {
        this.fInvType = fInvType;
    }

    public String getfPurName() {
        return fPurName;
    }

    public void setfPurName(String fPurName) {
        this.fPurName = fPurName;
    }

    public String getfManufacturerBatchNo() {
        return fManufacturerBatchNo;
    }

    public void setfManufacturerBatchNo(String fManufacturerBatchNo) {
        this.fManufacturerBatchNo = fManufacturerBatchNo;
    }

    public int getfInsType() {
        return fInsType;
    }

    public void setfInsType(int fInsType) {
        this.fInsType = fInsType;
    }

    public String getfOperator() {
        return fOperator;
    }

    public void setfOperator(String fOperator) {
        this.fOperator = fOperator;
    }

    public BigDecimal getfIQuantity() {
        return fIQuantity;
    }

    public void setfIQuantity(BigDecimal fIQuantity) {
        this.fIQuantity = fIQuantity;
    }

    public BigDecimal getfFinStockQuantity() {
        return fFinStockQuantity;
    }

    public void setfFinStockQuantity(BigDecimal fFinStockQuantity) {
        this.fFinStockQuantity = fFinStockQuantity;
    }

    public String getfCBatch() {
        return fCBatch;
    }

    public void setfCBatch(String fCBatch) {
        this.fCBatch = fCBatch;
    }

    public String getfBarCode() {
        return fBarCode;
    }

    public void setfBarCode(String fBarCode) {
        this.fBarCode = fBarCode;
    }

    public int getfArrivalType() {
        return fArrivalType;
    }

    public void setfArrivalType(int fArrivalType) {
        this.fArrivalType = fArrivalType;
    }

    public String getfMergeBar() {
        return fMergeBar;
    }

    public void setfMergeBar(String fMergeBar) {
        this.fMergeBar = fMergeBar;
    }

    public int getfQCAceptType() {
        return fQCAceptType;
    }

    public void setfQCAceptType(int fQCAceptType) {
        this.fQCAceptType = fQCAceptType;
    }

    public String getfPlaceCode() {
        return fPlaceCode;
    }

    public void setfPlaceCode(String fPlaceCode) {
        this.fPlaceCode = fPlaceCode;
    }

    public String getfCWhCode() {
        return fCWhCode;
    }

    public void setfCWhCode(String fCWhCode) {
        this.fCWhCode = fCWhCode;
    }

    public String getfCWhName() {
        return fCWhName;
    }

    public void setfCWhName(String fCWhName) {
        this.fCWhName = fCWhName;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ArrivalVouchVo that = (ArrivalVouchVo) o;
        return Objects.equals(fBarCode, that.fBarCode);
    }

    @Override
    public int hashCode() {
        return Objects.hash(fBarCode);
    }
}